home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / openobex / obex_const.h next >
C/C++ Source or Header  |  2006-01-09  |  6KB  |  145 lines

  1. /*********************************************************************
  2.  *                
  3.  * Filename:      obex_const.h
  4.  * Version:       
  5.  * Description:   Lots of constants and some typedefs for OpenOBEX.
  6.  * Status:        Stable.
  7.  * Author:        Pontus Fuchs <pontus.fuchs@tactel.se>
  8.  * Created at:    Mon May 08 15:03:03 2000
  9.  * CVS ID:        $Id: obex_const.h,v 1.20 2002/11/15 09:08:54 holtmann Exp $
  10.  * 
  11.  *     Copyright (c) 2000, Pontus Fuchs, All Rights Reserved.
  12.  *      
  13.  *     This library is free software; you can redistribute it and/or
  14.  *     modify it under the terms of the GNU Lesser General Public
  15.  *     License as published by the Free Software Foundation; either
  16.  *     version 2 of the License, or (at your option) any later version.
  17.  *
  18.  *     This library is distributed in the hope that it will be useful,
  19.  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
  20.  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  21.  *     Lesser General Public License for more details.
  22.  *
  23.  *     You should have received a copy of the GNU Lesser General Public
  24.  *     License along with this library; if not, write to the Free Software
  25.  *     Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
  26.  *     MA  02111-1307  USA
  27.  *     
  28.  ********************************************************************/
  29.  
  30. #ifndef OBEX_CONST_H
  31. #define OBEX_CONST_H
  32.  
  33. #include <stdint.h>
  34.  
  35. typedef union {
  36.     uint32_t bq4;
  37.     uint8_t bq1;
  38.     const uint8_t *bs;
  39. } obex_headerdata_t;
  40.  
  41. typedef struct {
  42.     int (*connect)(obex_t *handle, void * customdata);
  43.     int (*disconnect)(obex_t *handle, void * customdata);
  44.     int (*listen)(obex_t *handle, void * customdata);
  45.     int (*write)(obex_t *handle, void * customdata, uint8_t *buf, int buflen);
  46.     int (*handleinput)(obex_t *handle, void * customdata, int timeout);
  47.     void * customdata;
  48. } obex_ctrans_t;
  49.  
  50. #define    OBEX_CLIENT        0
  51. #define    OBEX_SERVER        1
  52.  
  53. /* Possible events */
  54. #define OBEX_EV_PROGRESS    0    /* Progress has been made */
  55. #define OBEX_EV_REQHINT        1    /* An incoming request is about to come */
  56. #define OBEX_EV_REQ        2    /* An incoming request has arrived */
  57. #define OBEX_EV_REQDONE        3    /* Request has finished */
  58. #define OBEX_EV_LINKERR        4    /* Link has been disconnected */
  59. #define OBEX_EV_PARSEERR    5    /* Malformed data encountered */
  60. #define OBEX_EV_ACCEPTHINT    6    /* Connection accepted */
  61. #define OBEX_EV_ABORT        7    /* Request was aborted */
  62. #define OBEX_EV_STREAMEMPTY    8    /* Need to feed more data when sending a stream */
  63. #define OBEX_EV_STREAMAVAIL    9    /* Time to pick up data when receiving a stream */
  64. #define OBEX_EV_UNEXPECTED    10    /* Unexpected data, not fatal */
  65.  
  66. /* For OBEX_Init() */
  67. #define OBEX_FL_KEEPSERVER    0x02    /* Keep the server alive */
  68. #define OBEX_FL_FILTERHINT    0x04    /* Filter devices based on hint bit */
  69. #define OBEX_FL_FILTERIAS    0x08    /* Filter devices based on IAS entry */
  70.  
  71. /* For OBEX_ObjectAddHeader */
  72. #define OBEX_FL_FIT_ONE_PACKET    0x01    /* This header must fit in one packet */
  73. #define OBEX_FL_STREAM_START    0x02    /* Start of streaming body */
  74. #define OBEX_FL_STREAM_DATA    0x04    /* Body-stream data */
  75. #define OBEX_FL_STREAM_DATAEND    0x08    /* Body stream last data */
  76.  
  77. /* Transports */
  78. #define OBEX_TRANS_IRDA        1
  79. #define OBEX_TRANS_INET        2
  80. #define OBEX_TRANS_CUST        3    /* Fixme: This will go away in future */
  81. #define OBEX_TRANS_CUSTOM    3
  82. #define OBEX_TRANS_BLUETOOTH    4
  83. #define OBEX_TRANS_FD        5
  84.  
  85. /* Standard headers */
  86. #define OBEX_HDR_COUNT        0xc0 /* Number of objects (used by connect) */
  87. #define OBEX_HDR_NAME        0x01 /* Name of the object */
  88. #define OBEX_HDR_TYPE        0x42 /* Type of the object */
  89. #define OBEX_HDR_TIME        0x44 /* Last modification time of (ISO8601) */
  90. #define OBEX_HDR_TIME2        0xC4 /* Deprecated use HDR_TIME instead */
  91. #define OBEX_HDR_LENGTH        0xc3 /* Total lenght of object */
  92. #define OBEX_HDR_DESCRIPTION    0x05 /* Description of object */
  93. #define OBEX_HDR_TARGET        0x46 /* Identifies the target for the object */
  94. #define OBEX_HDR_BODY        0x48 /* Data part of the object */
  95. #define OBEX_HDR_BODY_END    0x49 /* Last data part of the object */
  96. #define OBEX_HDR_WHO        0x4a /* Identifies the sender of the object */
  97. #define OBEX_HDR_APPARAM    0x4c /* Application parameters */
  98. #define OBEX_HDR_AUTHCHAL    0x4d /* Authentication challenge */
  99. #define OBEX_HDR_AUTHRESP    0x4e /* Authentication response */
  100. #define OBEX_HDR_OBJCLASS    0x4f /* OBEX Object class of object */
  101. #define OBEX_HDR_CONNECTION    0xcb /* Connection identifier */
  102.  
  103. /* Commands */
  104. #define OBEX_CMD_CONNECT    0x00
  105. #define OBEX_CMD_DISCONNECT    0x01
  106. #define OBEX_CMD_PUT        0x02
  107. #define OBEX_CMD_GET        0x03
  108. #define OBEX_CMD_COMMAND    0x04
  109. #define OBEX_CMD_SETPATH    0x05
  110. #define OBEX_CMD_ABORT        0x7f
  111. #define OBEX_FINAL        0x80
  112.  
  113. /* Responses */
  114. #define    OBEX_RSP_CONTINUE        0x10
  115. #define OBEX_RSP_SWITCH_PRO        0x11
  116. #define OBEX_RSP_SUCCESS        0x20
  117. #define OBEX_RSP_CREATED        0x21
  118. #define OBEX_RSP_ACCEPTED        0x22
  119. #define OBEX_RSP_NO_CONTENT        0x24
  120. #define OBEX_RSP_BAD_REQUEST        0x40
  121. #define OBEX_RSP_UNAUTHORIZED        0x41
  122. #define OBEX_RSP_PAYMENT_REQUIRED    0x42
  123. #define OBEX_RSP_FORBIDDEN        0x43
  124. #define OBEX_RSP_NOT_FOUND        0x44
  125. #define OBEX_RSP_METHOD_NOT_ALLOWED    0x45
  126. #define OBEX_RSP_CONFLICT        0x49
  127. #define OBEX_RSP_INTERNAL_SERVER_ERROR    0x50
  128. #define OBEX_RSP_NOT_IMPLEMENTED    0x51
  129. #define OBEX_RSP_DATABASE_FULL        0x60
  130. #define OBEX_RSP_DATABASE_LOCKED    0x61
  131.  
  132. /* Min, Max and default transport MTU */
  133. #define OBEX_DEFAULT_MTU    1024
  134. #define OBEX_MINIMUM_MTU    255      
  135. #define OBEX_MAXIMUM_MTU    32768
  136. /* In theory max MTU is (64k-1), but that's quite big. */
  137.  
  138. /* Optimum MTU for various transport (optimum for throughput).
  139.  * The user/application has to set them via OBEX_SetTransportMTU().
  140.  * If you are worried about safety or latency, stick with the current
  141.  * default... - Jean II */
  142. #define OBEX_IRDA_OPT_MTU    (7 * 2039)    /* 7 IrLAP frames */
  143.  
  144. #endif
  145.